package com.zhouxiaoge.antlr4.calc;// Generated from .\LabeledExpr.g4 by ANTLR 4.10.1

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.dfa.DFA;

@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class LabeledExprLexer extends Lexer {
    static {
        RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION);
    }

    protected static final DFA[] _decisionToDFA;
    protected static final PredictionContextCache _sharedContextCache =
            new PredictionContextCache();
    public static final int
            T__0 = 1, T__1 = 2, T__2 = 3, MUL = 4, DIV = 5, ADD = 6, SUB = 7, ID = 8, INT = 9, NEWLINE = 10,
            WS = 11;
    public static String[] channelNames = {
            "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
    };

    public static String[] modeNames = {
            "DEFAULT_MODE"
    };

    private static String[] makeRuleNames() {
        return new String[]{
                "T__0", "T__1", "T__2", "MUL", "DIV", "ADD", "SUB", "ID", "INT", "NEWLINE",
                "WS"
        };
    }

    public static final String[] ruleNames = makeRuleNames();

    private static String[] makeLiteralNames() {
        return new String[]{
                null, "'='", "'('", "')'", "'*'", "'/'", "'+'", "'-'"
        };
    }

    private static final String[] _LITERAL_NAMES = makeLiteralNames();

    private static String[] makeSymbolicNames() {
        return new String[]{
                null, null, null, null, "MUL", "DIV", "ADD", "SUB", "ID", "INT", "NEWLINE",
                "WS"
        };
    }

    private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
    public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);

    /**
     * @deprecated Use {@link #VOCABULARY} instead.
     */
    @Deprecated
    public static final String[] tokenNames;

    static {
        tokenNames = new String[_SYMBOLIC_NAMES.length];
        for (int i = 0; i < tokenNames.length; i++) {
            tokenNames[i] = VOCABULARY.getLiteralName(i);
            if (tokenNames[i] == null) {
                tokenNames[i] = VOCABULARY.getSymbolicName(i);
            }

            if (tokenNames[i] == null) {
                tokenNames[i] = "<INVALID>";
            }
        }
    }

    @Override
    @Deprecated
    public String[] getTokenNames() {
        return tokenNames;
    }

    @Override

    public Vocabulary getVocabulary() {
        return VOCABULARY;
    }


    public LabeledExprLexer(CharStream input) {
        super(input);
        _interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
    }

    @Override
    public String getGrammarFileName() {
        return "LabeledExpr.g4";
    }

    @Override
    public String[] getRuleNames() {
        return ruleNames;
    }

    @Override
    public String getSerializedATN() {
        return _serializedATN;
    }

    @Override
    public String[] getChannelNames() {
        return channelNames;
    }

    @Override
    public String[] getModeNames() {
        return modeNames;
    }

    @Override
    public ATN getATN() {
        return _ATN;
    }

    public static final String _serializedATN =
            "\u0004\u0000\u000b;\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001" +
                    "\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004" +
                    "\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007" +
                    "\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0001\u0000" +
                    "\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0003" +
                    "\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0006" +
                    "\u0001\u0006\u0001\u0007\u0004\u0007\'\b\u0007\u000b\u0007\f\u0007(\u0001" +
                    "\b\u0004\b,\b\b\u000b\b\f\b-\u0001\t\u0003\t1\b\t\u0001\t\u0001\t\u0001" +
                    "\n\u0004\n6\b\n\u000b\n\f\n7\u0001\n\u0001\n\u0000\u0000\u000b\u0001\u0001" +
                    "\u0003\u0002\u0005\u0003\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f" +
                    "\b\u0011\t\u0013\n\u0015\u000b\u0001\u0000\u0003\u0002\u0000AZaz\u0001" +
                    "\u000009\u0001\u0000\t\t>\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003" +
                    "\u0001\u0000\u0000\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007" +
                    "\u0001\u0000\u0000\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001" +
                    "\u0000\u0000\u0000\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000" +
                    "\u0000\u0000\u0000\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000" +
                    "\u0000\u0000\u0000\u0015\u0001\u0000\u0000\u0000\u0001\u0017\u0001\u0000" +
                    "\u0000\u0000\u0003\u0019\u0001\u0000\u0000\u0000\u0005\u001b\u0001\u0000" +
                    "\u0000\u0000\u0007\u001d\u0001\u0000\u0000\u0000\t\u001f\u0001\u0000\u0000" +
                    "\u0000\u000b!\u0001\u0000\u0000\u0000\r#\u0001\u0000\u0000\u0000\u000f" +
                    "&\u0001\u0000\u0000\u0000\u0011+\u0001\u0000\u0000\u0000\u00130\u0001" +
                    "\u0000\u0000\u0000\u00155\u0001\u0000\u0000\u0000\u0017\u0018\u0005=\u0000" +
                    "\u0000\u0018\u0002\u0001\u0000\u0000\u0000\u0019\u001a\u0005(\u0000\u0000" +
                    "\u001a\u0004\u0001\u0000\u0000\u0000\u001b\u001c\u0005)\u0000\u0000\u001c" +
                    "\u0006\u0001\u0000\u0000\u0000\u001d\u001e\u0005*\u0000\u0000\u001e\b" +
                    "\u0001\u0000\u0000\u0000\u001f \u0005/\u0000\u0000 \n\u0001\u0000\u0000" +
                    "\u0000!\"\u0005+\u0000\u0000\"\f\u0001\u0000\u0000\u0000#$\u0005-\u0000" +
                    "\u0000$\u000e\u0001\u0000\u0000\u0000%\'\u0007\u0000\u0000\u0000&%\u0001" +
                    "\u0000\u0000\u0000\'(\u0001\u0000\u0000\u0000(&\u0001\u0000\u0000\u0000" +
                    "()\u0001\u0000\u0000\u0000)\u0010\u0001\u0000\u0000\u0000*,\u0007\u0001" +
                    "\u0000\u0000+*\u0001\u0000\u0000\u0000,-\u0001\u0000\u0000\u0000-+\u0001" +
                    "\u0000\u0000\u0000-.\u0001\u0000\u0000\u0000.\u0012\u0001\u0000\u0000" +
                    "\u0000/1\u0005\r\u0000\u00000/\u0001\u0000\u0000\u000001\u0001\u0000\u0000" +
                    "\u000012\u0001\u0000\u0000\u000023\u0005\n\u0000\u00003\u0014\u0001\u0000" +
                    "\u0000\u000046\u0007\u0002\u0000\u000054\u0001\u0000\u0000\u000067\u0001" +
                    "\u0000\u0000\u000075\u0001\u0000\u0000\u000078\u0001\u0000\u0000\u0000" +
                    "89\u0001\u0000\u0000\u00009:\u0006\n\u0000\u0000:\u0016\u0001\u0000\u0000" +
                    "\u0000\u0005\u0000(-07\u0001\u0006\u0000\u0000";
    public static final ATN _ATN =
            new ATNDeserializer().deserialize(_serializedATN.toCharArray());

    static {
        _decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
        for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
            _decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
        }
    }
}